package com.service.user;

import com.entity.User;

import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

public interface UserService {
  /**
   * 获取个人信息
   *
   * @param userId 用户编号
   * @return 用户信息
   */
  User getPersonalInfo(String userId);

  /**
   * 修改用户昵称
   *
   * @param userId 用户编号
   * @param nickname 新的昵称
   * @return 修改成功返回1，失败返回0
   */
  int chNickname(String userId, String nickname);

  /**
   * 更换头像，保存头像并更新url
   *
   * @param userId 用户编号
   * @param file 头像文件
   * @return 若用户存在且文件是.jpg/png/gif/jpeg格式的图片，且更换成功，返回新的图片url,否则返回null
   */
  String chImage(String userId, MultipartFile file);

  Map<String, String> getUserLink(String userId);

  /**
   * 修改基本信息
   *
   * @param userId 用户编号
   * @param realName 真实姓名
   * @param sex 性别
   * @param email 邮箱
   * @param birthday 生日
   * @param age 年龄
   * @param location 位置
   * @param elucidation 个人说明
   * @return 修改成功返回1，否则返回0
   */
  int chBasicInfo(
      String userId,
      String realName,
      char sex,
      String email,
      String birthday,
      int age,
      String location,
      String elucidation);

  /**
   * 修改教育信息
   *
   * @param userId 用户编号
   * @param school 学校
   * @param major 专业
   * @param enrollYear 入学年份
   * @param eduBackGround 学历
   * @return 修改成功返回1，否则返回0
   */
  int chEduInfo(String userId, String school, String major, int enrollYear, String eduBackGround);

  /**
   * 修改标签
   *
   * @param userId 用户编号
   * @param label1Id 标签1编号
   * @param label2Id 标签2编号
   * @param label3Id 标签3编号
   * @return 修改成功返回1，否则返回0
   */
  int chLabel(String userId, int label1Id, int label2Id, int label3Id);
}
